let app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url: '',
    userId: '' // 仅存储用户ID用于接口调用
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 从本地存储获取用户ID
    const storageUser = wx.getStorageSync('user')
    if (storageUser && storageUser.id) {
      this.setData({
        userId: storageUser.id,
        url: app.globalData.url
      })
    } else {
      wx.showToast({
        title: '请先登录',
        icon: 'none',
        duration: 2000
      })
      // 2秒后返回上一页
      setTimeout(() => {
        wx.navigateBack()
      }, 2000)
    }
  },

  /**
   * 验证手机号格式
   * @param {string} phone - 待验证的手机号
   * @returns {boolean} 是否为有效的手机号
   */
  validatePhone(phone) {
    // 中国大陆手机号正则：以1开头，11位数字
    const reg = /^1[3-9]\d{9}$/
    return reg.test(phone)
  },

  /**
   * 处理手机号修改表单提交
   */
  UpdatePhone(e) {
    const { newPhone } = e.detail.value
    const { userId, url } = this.data

    // 验证手机号不为空
    if (!newPhone) {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none',
        duration: 2000
      })
      return
    }

    // 验证手机号格式
    if (!this.validatePhone(newPhone)) {
      wx.showToast({
        title: '请输入有效的手机号',
        icon: 'none',
        duration: 2000
      })
      return
    }

    // 调用接口修改手机号
    wx.request({
      url: url + 'user', // 与修改密码使用相同的接口
      method: 'PUT',
      data: {
        id: userId,       // 从本地存储获取的用户ID
        phone: newPhone   // 新手机号
      },
      success: (res) => {
        if (res.data.code === 200) {
          wx.showToast({
            title: '手机号绑定成功',
            icon: 'success',
            duration: 2000
          })

          // 更新本地存储中的用户手机号
          const updatedUser = wx.getStorageSync('user')
          updatedUser.phone = newPhone
          wx.setStorageSync('user', updatedUser)

          // 1秒后跳转到成功页面
          setTimeout(() => {
            wx.navigateTo({
              url: '/pages/my/myPhone/changePhoneSuccess/changePhoneSuccess'
            })
          }, 1000)
        } else {
          wx.showToast({
            title: res.data.msg || '绑定失败，请重试',
            icon: 'none',
            duration: 2000
          })
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络错误，请重试',
          icon: 'none',
          duration: 2000
        })
      },
      complete: () => {
        // 隐藏加载提示（与 showLoading 配对）
        wx.hideLoading()
      }
    })
  }
})